﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace FMPCore.Interfaces
{
    // NOTE: If you change the interface name "IMessage" here, you must also update the reference to "IMessage" in App.config.
    [ServiceContract(CallbackContract = typeof(IMessageCallback))]
    public interface IMessage
    {
        [OperationContract(IsOneWay=true)]
        void Logout(string username);

        [OperationContract]
        bool Login(string username, string password);

        [OperationContract]
        bool UserExist(string username);

        [OperationContract(IsOneWay = true)]
        void SendMessage(ChatMessage message);

        [OperationContract]
        List<Contact> GetContactList(string username);

        [OperationContract]
        bool AddContact(string currentUser, string userToAdd);

        [OperationContract]
        bool AddUser(string name, string password);

        [OperationContract]
        bool RemoveContact(string currentUser, string userToRemove);

        [OperationContract]
        FileTransferMessageArgsResponse SendFileTransferRequestMessage(FileTransferMessageArgs msgFileTransferArgs);
    }
}
